Construir um servidor de alta performance em Rust é uma jornada rumo ao abstrações de custo zero. Ao transferir a complexidade do tempo de execução para o tempo de compilação usando Macros Procedurais, garantimos que nossa lógica de roteamento seja tão eficiente quanto código de montagem escrito à mão.
1. O Esqueleto
Começamos com $ cargo new hello e $ cd hello. O ciclo de feedback é acelerado por $ cargo check, que valida os tipos sem o custo da geração completa do binário.
2. Metaprogramação Procedural
Diferentemente de macro_rules!, macros do tipo atributo (por exemplo, #[route]) e macros do tipo função (por exemplo, sql!()) manipulam o TokenStream diretamente. Macros de atributo são únicas; podem substituir o item ao qual estão anotados, permitindo-nos encapsular funções manipuladoras em tabelas de roteamento pré-otimizadas durante a compilação.